package com.tinem.platform.module.starter.jpa.entity.oauth;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

/**
 * @author fzh
 * @version v1
 * @program: platform
 * @className Oauth2AzureAdUserInfo
 * @description 微软azure用户信息
 * @site
 * @company
 * @create 2021-10-29
 */
@Data
@Entity
@ToString
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Table(name="t_oauth2_azure_ad_user_info")
@ApiModel("微软azure用户信息")
public class Oauth2AzureAdUserInfo implements Serializable,Cloneable{
    @Id
    @Column(name = "c_id",nullable=true)
    @ApiModelProperty(name = "id", value = "编号",required = true)
    private String id;

    @Column(name = "c_user_id",nullable=true)
    @ApiModelProperty(name = "userId", value = "",required = true)
    private String userId;

    @Column(name = "c_aio",nullable=true)
    @ApiModelProperty(name = "aio", value = "",required = true)
    private String aio;

    @Column(name = "c_amr",nullable=true)
    @ApiModelProperty(name = "amr", value = "",required = true)
    private String amr;

    @Column(name = "c_family_name",nullable=true)
    @ApiModelProperty(name = "familyName", value = "",required = true)
    private String familyName;

    @Column(name = "c_given_name",nullable=true)
    @ApiModelProperty(name = "givenName", value = "",required = true)
    private String givenName;

    @Column(name = "c_ipaddr",nullable=true)
    @ApiModelProperty(name = "ipaddr", value = "",required = true)
    private String ipaddr;

    @Column(name = "c_name",nullable=true)
    @ApiModelProperty(name = "name", value = "",required = true)
    private String name;

    @Column(name = "c_oid",nullable=true)
    @ApiModelProperty(name = "oid", value = "",required = true)
    private String oid;

    @Column(name = "c_sub",nullable=true)
    @ApiModelProperty(name = "sub", value = "",required = true)
    private String sub;

    @Column(name = "c_tid",nullable=true)
    @ApiModelProperty(name = "tid", value = "",required = true)
    private String tid;

    @Column(name = "c_unique_name",nullable=true)
    @ApiModelProperty(name = "uniqueName", value = "",required = true)
    private String uniqueName;

    @Column(name = "c_upn",nullable=true)
    @ApiModelProperty(name = "upn", value = "",required = true)
    private String upn;

    @Column(name = "c_uti",nullable=true)
    @ApiModelProperty(name = "uti", value = "",required = true)
    private String uti;

    @Column(name = "c_ver",nullable=true)
    @ApiModelProperty(name = "ver", value = "",required = true)
    private String ver;
    @Version
    @Column(name = "c_revision",nullable=true)
    @ApiModelProperty(name = "revision", value = "乐观锁",required = false)
    private Integer revision;

    @Column(name = "c_created_by",nullable=true)
    @ApiModelProperty(name = "createdBy", value = "创建人",required = false)
    private String createdBy;

    @Column(name = "c_created_time",nullable=true,insertable = false,updatable = false)
    @ApiModelProperty(name = "createdTime", value = "创建时间",required = false)
    private Date createdTime;

    @Column(name = "c_updated_by",nullable=true)
    @ApiModelProperty(name = "updatedBy", value = "更新人",required = false)
    private String updatedBy;

    @Column(name = "c_updated_time",nullable=true,insertable = false,updatable = false)
    @ApiModelProperty(name = "updatedTime", value = "更新时间",required = false)
    private Date updatedTime;

}